Gå til innhold

Hva gjør jeg fei l(Søk Mysql)


Anbefalte innlegg

Får denne feil melding.

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /hsphere/local/home/****/*****/sok1.php on line 11
Søket resulterte i 0 resultater 

 

 

Her er linje 9-13

$i = 0;
while ($row = mysql_fetch_array($query)) {
print $i++;
}

echo "Søket resulterte i $i resultater \n";

 

 

Noen som kan hjelpe meg?

Endret av jic
Lenke til kommentar
Videoannonse
Annonse

Jeg prøver å lage søke script, men får det ikke til.

 

Har prøvd flere forskjellige script men får det samme feil melding.

 

<?
echo "Søk etter nyhet:";
echo "<form action=\"$PHP_SELF?action=search\" method=\"post\"\>"; ?>
<table border=0>
<td valign=top>Søkeord:</td><td valign=top><input id="keyword" name="keyword" size="32" type="text"><br>
<td valign=top><input type=submit value="Søk" name="ok"></td>
</table>
</form>

<?php

$action = $_GET['action']; 
switch($action){ 
  case search: 
$search = addslashes($keyword); // Dette er denne sikkerhets funksjonen Druber
//snakket om.

$connection = mysql_connect ( $hostname, $user, $pass) or die("Klarte ikke koble til databasen");
$database =  mysql_select_db($database ,$connection);
$result = mysql_query("SELECT * FROM wap WHERE midi LIKE '%$search%'", $connection); // som dere ser leter den her i maintext. Det er fordi 
//maintext er en row i tabellen til phpnews. Denne må dere redigere til det du 
//trenger.


if($search == "%") {  //  Lar søkeren få en "error" hvis han søker etter %
echo "Venligst skriv et annet søkeord!"; 
}
elseif($search == "") {  // Lar søkeren få en "error" hvis han søker tomt
echo "Venligst skriv et annet søkeord!"; 
}
Else {
echo "<br><br><u>Resultatene av søket ditt (<i>$search</i>):<br><br></u>";

While ( $row = mysql_fetch_array( $result ) ) {

echo "<</a><br>"; // Dette er koden som viser fram resultatet. Her er 
//det også en direkte link. Denne vil ikke fungere hvis du har en annen måte på å 
//vise nyheter osv...
       break;   
}
}
  default: 
echo "<b>ERROR 404!</b> Siden ikke funnnet";
       break; 
}

?>

 

Har prøvd denne også men får samme feil mld.

 

 

Jeg kommer ikke inn på ftp så får ikke skrevet hele scriptet akkurat nå.

Lenke til kommentar
Har egentlig ikke så mye peiling på php enda at det gjør noe, men:

1. "print $i++;" hva sier "++" mulig dette rådet er helt på jordet... :p

2. Tittelen din sier altfor lite om hva posten inneholder. Velg edit på den øverste posten og endre tittelen.

1) ++ øker variabel med 1.

 

$variabel = 1;

$variabel++;

// $variabel = 2;

 

 

jic: du bør hvertfall legge til følgende:

if([b]trim([/b]$search[b])[/b] == "%") {  //  Lar søkeren få en "error" hvis han søker etter %
echo "Venligst skriv et annet søkeord!";
}
elseif([b]empty([/b]$search[b])[/b] == "") {  // Lar søkeren få en "error" hvis han søker tomt
echo "Venligst skriv et annet søkeord!";
}

 

...eller kanskje slå de sammen:

 

if([b]trim($search) == "%" || empty($search)[/b]) {  //  Lar søkeren få en "error" hvis han søker etter % eller søker tomt
echo "Venligst skriv et annet søkeord!";
}

 

edit: la til

-taggen :-)
Endret av fjartan
Lenke til kommentar

Hei!

 

Jge får hele tiden samme feil melding.

 

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in.

 

Har prøvd flere forskjellige script, men er samme feil melding uansett.

 

vet noen hva som kan være grunnen.

Lenke til kommentar

Hei

 

Dette er koden du har skrevet:

$i = 0;

while ($row = mysql_fetch_array($query)) {

print $i++;

}

 

echo "Søket resulterte i $i resultater \n";

 

 

Du bør heller gjøre slik:

 

$query = "select * from blabla'";

$resultat = mysql_query($query, $db);

 

if(!$resultat) {

echo'Kunne ikke foreta spørring';

}

 

while($row = mysql_fetch_array($resultat)) {

//Henter ud det du vil ha

}

 

 

Håper dette hjelper.. :)

Lenke til kommentar

Ser ut som at koblingen til databasetjeneren ikke virker som den skal.

 

Prøv dette for å sjekke

 

<?php
$dbTjener="localhost"; //Sett inn noe annet om du trenger det
$dbBrukernavn="ditt brukernavn" //Har du brukt rett brukernavn?
$dbPassord="ditt passord" //Sett inn databasetjenerpassordet her
$dbDatabase="din database" //Sett inn navnet på databasen din her.
$dbTabell="en tabell i databasen" //Sett inn noe som passer
//koble til
mysql_connect($dbTjener, $dbBrukernavn, $dbPassord) or die(mysql_error());
//velge database
mysql_select_db($dbDatabase) or die(mysql_error());

//Lag litt kode som tester tilkoblingen.
$query="SELECT * FROM $dbTabell";
$result = mysql_query($query) or die("Spørringen <p>$query</p>forårsaket feilmeldingen:<br>".mysql_error());
echo 'Spørringen returnerte '.mysql_num_rows($result).' rader.';

 

Her er det bare å endre de variablene øverst inntil tilkoblingen til databasetjeneren virker.

 

Legge også merke til hvordan all ekstern kommunikasjon til databasetjeneren er feilsjekket med 'or die(mysql_error())'. Dette er fordi mange av mysql_ funksjonene ikke gir feilmelding videre i scriptet selv om de får en feilmelding fra databastjeneren.

 

Håper dette hjelper.

Lenke til kommentar
Jeg lukter en feil i denne linja...

$database =  mysql_select_db($database ,$connection);

 

Legg til litt på slutten så den blir

$database =  mysql_select_db($database ,$connection) or die("Klarte ikke å velge database");

for å sjekke det

 

eller

mysql_error()

Hei!

 

Jeg får opp.

ERROR 404! Siden ikke funnnet

 

Tror jeg aldri får det til. :(

Lenke til kommentar
404 feil er bare rett og slett fordi den ikke finner filen

 

Så det har ikke så mye med PHP å gjøre.

Kontroller filnavn og at serveren virker og prøv igjen?

Nå får jeg denne feilmelding igjen :(

 

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in mobile.mrjic.net/test1.php on line 40

Lenke til kommentar

Ok, et par spørsmål:

 

- Er det din server hvor databasen ligger?

 

- Er det din server hvor siden ligger?

 

Hvis begge svar er nei; Det kan hende at du ikke kan bruke localhost. Jeg kan ikke det hos min host. Dette kan være en grunn. Jeg husker å ha hatt akkurat det samme problemet selv, men jeg kommer ikke på hva det var. Tror det var noe med connection til databasen.

Lenke til kommentar

1. Du må nok sikkert bruke $_POST[] får å få tak i keyword... Sett inn etter case search:

$keyword = $_POST["keyword"];

Regner med Globale verdier er avslått (iom at du bruker $_GET). Bør ihvertfall være det...

 

2. Kjør alltid en sjekk på spørringen din mot mysql. Bytt ut "$result = mysql_query........" med dette:

$sql = "SELECT * FROM wap WHERE midi LIKE '%$search%'";
$result = mysql_query($sql) or die("FEIL I SPØRRING: $sql <br>".mysql_Error());

Da vil du nok få fram en feilmelding som forklarer hva som er feil.. Evt også se at spørringen ikke er slik du vil den skal være...

 

EDIT: Så fremt det er koden i innlegg 5 som gjelder, da ;)

Endret av kakkle
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...