[PHP MySQL] 2 Query's uitvoeren. Lukt nog niet.

Pagina: 1
Acties:
  • 40 views sinds 30-01-2008

  • mickjuh
  • Registratie: Mei 2004
  • Laatst online: 18-05 12:13

mickjuh

Good news everyone!

Topicstarter
Okeej ik zit met het volgende probleem.

Wat ik graag zou willen is dat als je op "omschrijving" zoekt dat hij kijkt wat voor serienummer bij die omschrijving hoort. Deze moet hij onthouden en daarna moet hij een query uitvoeren en zoeken op dit gevonden serienummer. Er bestaan meer serienummers en daarom komen er ook meer resultaten als uitkomst.

Tot nu toe heb ik dit onder andere in mijn php script;
PHP:
1
2
3
4
5
6
<?
// Build SQL Query     
mysql_query("SELECT serienummer FROM onderdelen WHERE omschrijving LIKE '%" .$trimmed. "%' "); 
$query = "select * from onderdelen where serienummer in() 
  order by serienummer"; 
?>


Als ik nu tussen de () iets kan zetten dat hij verwijst naar de gevonden serienummers van de eerste query dan zou het werken. Als ik handmatig tussen de () een serienummer zou zetten dan zou hij wel werken. Bijv.

where serienummer in(301740051)

Nu zou hij eigenlijk alleen in dit serienummer kijken. Ik wil dus dat hij gaat kijken na de serienummers in de gevonden eerste query...

Ik weet niet hoe ik dit aanpak maar het blijkt heel simpel te zijn ;(
Op Phpfreakz zeiden ze iets met het gebruiken van 'print'.

  • Lord_Gaav
  • Registratie: April 2003
  • Laatst online: 18-05 13:13
PHP:
1
2
3
4
5
6
7
8
9
10
<?
// Build SQL Query     
$result = mysql_query("SELECT serienummer FROM onderdelen WHERE omschrijving LIKE '%" .$trimmed. "%' ");

$row = mysql_fetch_array($result);

$query = "select * from onderdelen where serienummer in(".$row['serienummer'].")
  order by serienummer";

?> 

etc

was gemakkelijk te vinden in de PHP manual

[ Voor 23% gewijzigd door Lord_Gaav op 18-10-2004 14:17 ]


  • mickjuh
  • Registratie: Mei 2004
  • Laatst online: 18-05 12:13

mickjuh

Good news everyone!

Topicstarter
Krijg deze foutmelding;
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\phpdev5\www\public\data\search-omschrijving.php on line 68

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\phpdev5\www\public\data\search-omschrijving.php on line 74

Sorry, er is niets gevonden.

Couldn't execute query: You have an error in your SQL syntax near ') order by serienummer' at line 1
Misschien omdat ik dubbele variabelles gebruik ofzo?

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<?
mysql_query("SELECT serienummer FROM onderdelen WHERE omschrijving LIKE '%" .$trimmed. "%' ");

$row = mysql_fetch_array($result); 

$query = "select * from onderdelen where serienummer in(".$row['serienummer'].") 
  order by serienummer"; 

$numresults=mysql_query($query); 
$numrows=mysql_num_rows($numresults); 

if ($numrows == 0) 
  { 
  echo "<p>Sorry, er is niets gevonden.</p>"; 
  } 

// $result = mysql_query($query); 

if(!$result) 
{ 
    die('Couldn\'t execute query: '.mysql_error()); 
} 

// display what the person searched for 
echo "<p>U heeft gezocht naar de omschrijving:<b> &quot;" . $var . "&quot;</b></p>"; 

// begin to show results set 

echo "<table width='970' border=0>"; 
echo  "<tr>"; 
echo    "<td width='85'><strong>MESC-nummer</strong></td>";
echo    "<td width='75'><strong>Type-nummer</strong></td>"; 
echo    "<td width='210'><strong>Omschrijving</strong></td>"; 
echo    "<td width='170'><strong>Type</strong></td>"; 
echo    "<td width='70'><strong>Grootte</strong></td>"; 
echo    "<td width='180'><strong>Eigenschappen</strong></td>"; 
echo    "<td width='90'><strong>Alias</strong></td>";
echo    "<td width='90'><strong>Naam</strong></td>";
echo  "</tr>"; 
while ($row= mysql_fetch_array($result)) { 
  echo  "<tr>"; 
  echo    "<td width='85'>".$row["serienummer"]."</td>";
  echo    "<td width='75'>".$row["typenummer"]."</td>"; 
  echo    "<td width='210'>".$row["omschrijving"]."</td>"; 
  echo    "<td width='170'>".$row["type"]."</td>"; 
  echo    "<td width='70'>".$row["grote"]."</td>"; 
  echo    "<td width='180'>".$row["eigenschappen"]."</td>"; 
  echo    "<td width='90'>".$row["alias"]."</td>";
  echo    "<td width='90'>".$row["naam"]."</td>";
  echo  "</tr>"; 
}
  echo"</table>";
?>


*edit*

Line 68 =
$row = mysql_fetch_array($result);

Line 74 =
$numrows=mysql_num_rows($numresults);

[ Voor 29% gewijzigd door mickjuh op 18-10-2004 14:29 ]


  • Lord_Gaav
  • Registratie: April 2003
  • Laatst online: 18-05 13:13
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\phpdev5\www\public\data\search-omschrijving.php on line 68

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\phpdev5\www\public\data\search-omschrijving.php on line 74
deze error betekent meestal dat je Query fout is, waardoor er geen array kan worden gemaakt.

EDIT ik zie je fout al, je moet de eerste query wel opschrijven als '$result = ...' anders kan je niet fetchen uit $result (zie ook mijn vorige post) /EDIT

bedenkt ook dat je in $row['serienummer'] "serienummer" moet vervangen door de kolom waarin je het serienummer in de database hebt gezet, dus als het serienummer in 'id' staat wordt het $row['id']

[ Voor 16% gewijzigd door Lord_Gaav op 18-10-2004 14:33 ]


  • mickjuh
  • Registratie: Mei 2004
  • Laatst online: 18-05 12:13

mickjuh

Good news everyone!

Topicstarter
*edit*

Wacht, dit is trouwens toch niet goed ;( Het serienummer komt vaker voor in de database, deze moet hij dan ook vaker weergeven. Als 1 serienummer nu vaker in de database staat dan laat hij deze ook maar 1 keer zien. De anderen laat hij niet zien. ;(

[ Voor 98% gewijzigd door mickjuh op 18-10-2004 14:46 ]


  • Lord_Gaav
  • Registratie: April 2003
  • Laatst online: 18-05 13:13
probeer ipv van een while (arg) { ... } eens een do { ... } while (arg) waarbij arg dus je vergelijking is

edit: je kan beter je post gewoon editten ipv de helft te deleten, als je dingen weghaalt worden mijn posts ook nutteloos...

[ Voor 38% gewijzigd door Lord_Gaav op 18-10-2004 14:47 ]


  • mickjuh
  • Registratie: Mei 2004
  • Laatst online: 18-05 12:13

mickjuh

Good news everyone!

Topicstarter
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?
echo "<table width='970' border=0>"; 
echo  "<tr>"; 
echo    "<td width='85'><strong>MESC-nummer</strong></td>";
echo    "<td width='75'><strong>Type-nummer</strong></td>"; 
echo    "<td width='210'><strong>Omschrijving</strong></td>"; 
echo    "<td width='170'><strong>Type</strong></td>"; 
echo    "<td width='70'><strong>Grootte</strong></td>"; 
echo    "<td width='180'><strong>Eigenschappen</strong></td>"; 
echo    "<td width='90'><strong>Alias</strong></td>";
echo    "<td width='90'><strong>Naam</strong></td>";
echo  "</tr>"; 
do  { 
  echo  "<tr>"; 
  echo    "<td width='85'>".$row["serienummer"]."</td>";
  echo    "<td width='75'>".$row["typenummer"]."</td>"; 
  echo    "<td width='210'>".$row["omschrijving"]."</td>"; 
  echo    "<td width='170'>".$row["type"]."</td>"; 
  echo    "<td width='70'>".$row["grote"]."</td>"; 
  echo    "<td width='180'>".$row["eigenschappen"]."</td>"; 
  echo    "<td width='90'>".$row["alias"]."</td>";
  echo    "<td width='90'>".$row["naam"]."</td>";
  echo  "</tr>"; 
} while ($row= mysql_fetch_array($result))
  echo"</table>"; ?>


Ik krijg nu een "Parse error: parse error, unexpected T_ECHO, expecting ';' in c:\phpdev5\www\public\data\search-omschrijving.php on line 113"

Maar met de tabel is geloof ik niets mis.

Dit zeiden ze op phpfreakz,
PHP:
1
2
3
4
5
6
<?
// Build SQL Query     
mysql_query("SELECT serienummer FROM onderdelen WHERE omschrijving LIKE '%" .$trimmed. "%' "); 
$query = "select * from onderdelen where serienummer in() 
  order by serienummer"; 
?>


Die serienummers haal je met PHP op uit de 1e query en zet je met PHP in de tweede query en daarna laat je die 2e query uitvoeren.

In die haakjes zet je d.m.v PHP juist die serienummers uit de 1e query.

Maak eerst eens een scriptje dat de serie nummers uit die 1e query print
Maargoed ik weet dus niet hoe ik dit precies moet aanpakken

  • mickjuh
  • Registratie: Mei 2004
  • Laatst online: 18-05 12:13

mickjuh

Good news everyone!

Topicstarter
Iemand enig idee hoe ik die 2e query kan koppelen aan die eerste?

Verwijderd

Ten eerste snap ik niet waarom je hier 2 queries voor nodig hebt, je haalt het allebei uit dezelfde tabel, dat kan gewoon in 1 keer.

Ten tweede lijk je nog heel weinig te begrijpen van php, volgens mij heb je al genoeg aanwijzingen gehad.
Lees anders eens wat tutorials over php+mysql.

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 08:05

Janoz

Moderator Devschuur®

!litemod

Dit topic gaat op slot. Het is niet de bedoeling dat we hier je parsefouten op gaan lossen zoals je ook in de faq van Programming & Webscripting kunt lezen.

Uit deze thread blijkt duidelijk dat je nu met iets bezig bent dat nog net wat te hoog gegrepen is voor je. Begin eens met iets simpelers. Doe wat php-tutorials en ook database tutorials. Leren zwemmen doe je nu eenmaal ook niet door gelijk in het diepe te verdrinken.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'

Pagina: 1

Dit topic is gesloten.